#include<iostream>
using namespace std;
#include<map>
/*
学习目标：
    map容器默认排序规则为按照key值进行从小到大排序，掌握如何改变排序规则
主要技术点：
    利用仿函数，可以改变排序规则

*/
class MyCompare
{
public:
    bool operator()(int v1,int v2)
    {
        //降序
        return v1>v2;
    }
};
void printMap(map<int,int> &m)
{
    for(map<int,int>::iterator it=m.begin();it!=m.end();it++)
    {
        cout<<"key="<<(*it).first<<" value="<<it->second<<endl;
    }
    cout<<endl;
}
void test01()
{
    map<int,int,MyCompare> m;
    m.insert(pair<int,int>(1,10));
    m.insert(pair<int,int>(2,20));
    m.insert(pair<int,int>(3,30));
    m.insert(pair<int,int>(4,20));
    for(map<int,int,MyCompare>::iterator it=m.begin();it!=m.end();it++)
    {
        cout<<"key="<<(*it).first<<" value="<<it->second<<endl;
    }
    cout<<endl;
    
}
int main()
{
    test01();
}
/*
总结：
对于自定义数据类型，map必须要指定排序规则，同set容器
*/